package com.ruoyi.ams.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.ams.domain.vo.DeptAssetNumberVo;
import com.ruoyi.ams.domain.vo.IotAssetInfo;
import com.ruoyi.common.core.domain.AsmsAssetFullInfo;
import com.ruoyi.common.core.domain.model.AmsAssetInfo;

import java.util.List;

/**
 * 资产基础信息Service接口
 * 
 * @author yfkj
 * @date 2021-10-15
 */
public interface IAmsAssetInfoService  extends IService<AmsAssetInfo>
{
    /**
     * 查询资产基础信息
     * 
     * @param assetId 资产基础信息主键
     * @return 资产基础信息
     */
    public Object selectAmsAssetInfoByAssetId(Long assetId);

    /**
     * 查询资产基础信息列表
     * 
     * @param amsAssetInfo 资产基础信息
     * @return 资产基础信息集合
     */
    public List<AmsAssetInfo> selectAmsAssetInfoList(AmsAssetInfo amsAssetInfo);

    /**
     * 新增资产基础信息
     * 
     * @param amsAssetInfo 资产基础信息
     * @return 结果
     */
    public int insertAmsAssetInfo(AmsAssetInfo amsAssetInfo);

    /**
     * 修改资产基础信息
     * 
     * @param amsAssetInfo 资产基础信息
     * @return 结果
     */
    public int updateAmsAssetInfo(AmsAssetInfo amsAssetInfo);

    /**
     * 批量删除资产基础信息
     * 
     * @param assetIds 需要删除的资产基础信息主键集合
     * @return 结果
     */
    public int deleteAmsAssetInfoByAssetIds(Long[] assetIds);

    /**
     * 删除资产基础信息信息
     * 
     * @param assetId 资产基础信息主键
     * @return 结果
     */
    public int deleteAmsAssetInfoByAssetId(Long assetId);

    /**
     * 批量获取资产基础信息
     *
     * @param deptIds 需要删除的资产基础信息主键集合
     * @return 结果
     */
    public List<AmsAssetInfo> getAmsAssetInfoByDeptIds(List<Long> deptIds, Long startTime, Long endTime, Long assetTemplateId);

    /**
     * 获取部门机柜锁数量
     * @param deptIds
     * @return
     */
    public List<DeptAssetNumberVo> getDeptAssetNumber(List<Long> deptIds);

    List<IotAssetInfo> getIotAssetBasicList(Long useDeptId, String addressName);

    public List<AsmsAssetFullInfo> getAllAssetInfoByDeptIds(List<Long> deptIds, Long startTime, Long endTime, Long assetTemplateId);

    public List<AmsAssetInfo> getAllLock(List<Long> deptIds);

    public List<AsmsAssetFullInfo> getAllAssetInfo(List<Long> deptIds);

}
